package com.gitee.wsl.android.ext.device

import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.BatteryManager


object BatteryExt {

    /**
     * 以下罗列几个值得关注的:
    //BATTERY_PROPERTY_CHARGE_COUNTER 剩余电池容量，单位为微安时
    //BATTERY_PROPERTY_CURRENT_NOW 瞬时电池电流，单位为微安
    //BATTERY_PROPERTY_CURRENT_AVERAGE 平均电池电流，单位为微安
    //BATTERY_PROPERTY_CAPACITY 剩余电池容量，显示为整数百分比
    //BATTERY_PROPERTY_ENERGY_COUNTER 剩余能量，单位为纳瓦时
    // EXTRA_BATTERY_LOW  是否认为电量低
    // EXTRA_HEALTH  电量健康常量的常数
    // EXTRA_LEVEL  电量值
    // EXTRA_VOLTAGE 电压
    // ACTION_CHARGING   进入充电状态
    // ACTION_DISCHARGING  进入放电状态
     */

    //获取电池温度BatteryManager.EXTRA_TEMPERATURE，华氏温度需要除以10
    fun getBatteryTempImmediately(context: Context): Float {
        return try {
            val batIntent = getBatteryStickyIntent(context) ?: return 0f
            batIntent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 0) / 10F
        } catch (e: Exception) {
            0f
        }
    }

    private fun getBatteryStickyIntent(context: Context): Intent? {
        return try {
            context.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
        } catch (e: Exception) {
            null
        }
    }
}